package bc.sistema.usuario;

import bc.exceptions.TelefoneInvalidoException;

/**
 * Classe Telefone.
 *
 * @author Felipe Miranda Medeiros
 * @version 1.0
 */
public final class Telefone {

    private int telefone;

    /**
     * Construtor de Telefone.
     *
     * @param telefone Um número do telefone.
     * @throws TelefoneInvalidoException Se o número do telefone for maior que 8
     * dígitos ou menor que isso.
     */
    public Telefone(final int telefone) throws TelefoneInvalidoException {
        setTelefone(telefone);
    }

    /**
     * Atribui um número ao telefone.
     *
     * @param telefone Número do telefone.
     * @throws TelefoneInvalidoException Se o número do telefone for maior que 8
     * dígitos ou menor que isso.
     */
    public void setTelefone(final int telefone) throws TelefoneInvalidoException {
        if (telefone < 0 || String.valueOf(telefone).length() < 8 || String.valueOf(telefone).length() > 8) {
            throw new TelefoneInvalidoException("Telefone inválido");
        }
        this.telefone = telefone;
    }

    /**
     * Retorna o número do telefone.
     *
     * @return O número do telefone.
     */
    public int getTelefone() {
        return telefone;
    }

    /**
     *
     * @return String com o telefone no formato xxxx-xxxx
     */
    @Override
    public String toString() {
        String strTelefone = String.valueOf(telefone);
        return (strTelefone.substring(0, 4) + "-" + strTelefone.substring(4, 8));
    }
}
